home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / include / tkX.h < prev    next >
C/C++ Source or Header  |  1992-12-17  |  27KB  |  697 lines

  1. /*
  2.  * tk.h --
  3.  *
  4.  *    Declarations for Tk-related things that are visible
  5.  *    outside of the Tk module itself.
  6.  *
  7.  * Copyright 1989-1992 Regents of the University of California.
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /user6/ouster/wish/RCS/tk.h,v 1.90 92/08/20 16:36:30 ouster Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _TK
  20. #define _TK
  21.  
  22. #ifndef _TCL
  23. #include <tcl.h>
  24. #endif
  25. #ifndef _XLIB_H
  26. #include <X11/Xlib.h>
  27. #endif
  28. #ifdef __STDC__
  29. #include <stddef.h>
  30. #endif
  31.  
  32. /*
  33.  * Dummy types that are used by clients:
  34.  */
  35.  
  36. typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
  37. typedef struct Tk_TimerToken_ *Tk_TimerToken;
  38. typedef struct Tk_Window_ *Tk_Window;
  39. typedef struct Tk_3DBorder_ *Tk_3DBorder;
  40. typedef struct Tk_BindingTable_ *Tk_BindingTable;
  41.  
  42. /*
  43.  * Additional types exported to clients.
  44.  */
  45.  
  46. typedef char *Tk_Uid;
  47.  
  48. /*
  49.  * Structure used to specify how to handle argv options.
  50.  */
  51.  
  52. typedef struct {
  53.     char *key;        /* The key string that flags the option in the
  54.              * argv array. */
  55.     int type;        /* Indicates option type;  see below. */
  56.     char *src;        /* Value to be used in setting dst;  usage
  57.              * depends on type. */
  58.     char *dst;        /* Address of value to be modified;  usage
  59.              * depends on type. */
  60.     char *help;        /* Documentation message describing this option. */
  61. } Tk_ArgvInfo;
  62.  
  63. /*
  64.  * Legal values for the type field of a Tk_ArgvInfo: see the user
  65.  * documentation for details.
  66.  */
  67.  
  68. #define TK_ARGV_CONSTANT        15
  69. #define TK_ARGV_INT            16
  70. #define TK_ARGV_STRING            17
  71. #define TK_ARGV_UID            18
  72. #define TK_ARGV_REST            19
  73. #define TK_ARGV_FLOAT            20
  74. #define TK_ARGV_FUNC            21
  75. #define TK_ARGV_GENFUNC            22
  76. #define TK_ARGV_HELP            23
  77. #define TK_ARGV_CONST_OPTION        24
  78. #define TK_ARGV_OPTION_VALUE        25
  79. #define TK_ARGV_OPTION_NAME_VALUE    26
  80. #define TK_ARGV_END            27
  81.  
  82. /*
  83.  * Flag bits for passing to Tk_ParseArgv:
  84.  */
  85.  
  86. #define TK_ARGV_NO_DEFAULTS        0x1
  87. #define TK_ARGV_NO_LEFTOVERS        0x2
  88. #define TK_ARGV_NO_ABBREV        0x4
  89. #define TK_ARGV_DONT_SKIP_FIRST_ARG    0x8
  90.  
  91. /*
  92.  * Structure used to describe application-specific configuration
  93.  * options:  indicates procedures to call to parse an option and
  94.  * to return a text string describing an option.
  95.  */
  96.  
  97. typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData,
  98.     Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec,
  99.     int offset));
  100. typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData,
  101.     Tk_Window tkwin, char *widgRec, int offset,
  102.     Tcl_FreeProc **freeProcPtr));
  103.  
  104. typedef struct Tk_CustomOption {
  105.     Tk_OptionParseProc *parseProc;    /* Procedure to call to parse an
  106.                      * option and store it in converted
  107.                      * form. */
  108.     Tk_OptionPrintProc *printProc;    /* Procedure to return a printable
  109.                      * string describing an existing
  110.                      * option. */
  111.     ClientData clientData;        /* Arbitrary one-word value used by
  112.                      * option parser:  passed to
  113.                      * parseProc and printProc. */
  114. } Tk_CustomOption;
  115.  
  116. /*
  117.  * Structure used to specify information for Tk_ConfigureWidget.  Each
  118.  * structure gives complete information for one option, including
  119.  * how the option is specified on the command line, where it appears
  120.  * in the option database, etc.
  121.  */
  122.  
  123. typedef struct Tk_ConfigSpec {
  124.     int type;            /* Type of option, such as TK_CONFIG_COLOR;
  125.                  * see definitions below.  Last option in
  126.                  * table must have type TK_CONFIG_END. */
  127.     char *argvName;        /* Switch used to specify option in argv.
  128.                  * NULL means this spec is part of a group. */
  129.     char *dbName;        /* Name for option in option database. */
  130.     char *dbClass;        /* Class for option in database. */
  131.     char *defValue;        /* Default value for option if not
  132.                  * specified in command line or database. */
  133.     int offset;            /* Where in widget record to store value;
  134.                  * use Tk_Offset macro to generate values
  135.                  * for this. */
  136.     int specFlags;        /* Any combination of the values defined
  137.                  * below;  other bits are used internally
  138.                  * by tkConfig.c. */
  139.     Tk_CustomOption *customPtr;    /* If type is TK_CONFIG_CUSTOM then this is
  140.                  * a pointer to info about how to parse and
  141.                  * print the option.  Otherwise it is
  142.                  * irrelevant. */
  143. } Tk_ConfigSpec;
  144.  
  145. /*
  146.  * Type values for Tk_ConfigSpec structures.  See the user
  147.  * documentation for details.
  148.  */
  149.  
  150. #define TK_CONFIG_BOOLEAN    1
  151. #define TK_CONFIG_INT        2
  152. #define TK_CONFIG_DOUBLE    3
  153. #define TK_CONFIG_STRING    4
  154. #define TK_CONFIG_UID        5
  155. #define TK_CONFIG_COLOR        6
  156. #define TK_CONFIG_FONT        7
  157. #define TK_CONFIG_BITMAP    8
  158. #define TK_CONFIG_BORDER    9
  159. #define TK_CONFIG_RELIEF    10
  160. #define TK_CONFIG_CURSOR    11
  161. #define TK_CONFIG_ACTIVE_CURSOR    12
  162. #define TK_CONFIG_JUSTIFY    13
  163. #define TK_CONFIG_ANCHOR    14
  164. #define TK_CONFIG_SYNONYM    15
  165. #define TK_CONFIG_CAP_STYLE    16
  166. #define TK_CONFIG_JOIN_STYLE    17
  167. #define TK_CONFIG_PIXELS    18
  168. #define TK_CONFIG_MM        19
  169. #define TK_CONFIG_WINDOW    20
  170. #define TK_CONFIG_CUSTOM    21
  171. #define TK_CONFIG_END        22
  172.  
  173. /*
  174.  * Macro to use to fill in "offset" fields of Tk_ConfigInfos.
  175.  * Computes number of bytes from beginning of structure to a
  176.  * given field.
  177.  */
  178.  
  179. #ifdef offsetof
  180. #define Tk_Offset(type, field) ((int) offsetof(type, field))
  181. #else
  182. #define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
  183. #endif
  184.  
  185. /*
  186.  * Possible values for flags argument to Tk_ConfigureWidget:
  187.  */
  188.  
  189. #define TK_CONFIG_ARGV_ONLY    1
  190.  
  191. /*
  192.  * Possible flag values for Tk_ConfigInfo structures.  Any bits at
  193.  * or above TK_CONFIG_USER_BIT may be used by clients for selecting
  194.  * certain entries.  Before changing any values here, coordinate with
  195.  * tkConfig.c (internal-use-only flags are defined there).
  196.  */
  197.  
  198. #define TK_CONFIG_COLOR_ONLY        1
  199. #define TK_CONFIG_MONO_ONLY        2
  200. #define TK_CONFIG_NULL_OK        4
  201. #define TK_CONFIG_DONT_SET_DEFAULT    8
  202. #define TK_CONFIG_OPTION_SPECIFIED    0x10
  203. #define TK_CONFIG_USER_BIT        0x100
  204.  
  205. /*
  206.  * Bits to pass to Tk_CreateFileHandler to indicate what sorts
  207.  * of events are of interest:
  208.  */
  209.  
  210. #define TK_READABLE    1
  211. #define TK_WRITABLE    2
  212. #define TK_EXCEPTION    4
  213.  
  214. /*
  215.  * Flag values to pass to Tk_DoOneEvent to disable searches
  216.  * for some kinds of events:
  217.  */
  218.  
  219. #define TK_DONT_WAIT        1
  220. #define TK_X_EVENTS        2
  221. #define TK_FILE_EVENTS        4
  222. #define TK_TIMER_EVENTS        8
  223. #define TK_IDLE_EVENTS        0x10
  224. #define TK_ALL_EVENTS        0x1e
  225.  
  226. /*
  227.  * Priority levels to pass to Tk_AddOption:
  228.  */
  229.  
  230. #define TK_WIDGET_DEFAULT_PRIO    20
  231. #define TK_STARTUP_FILE_PRIO    40
  232. #define TK_USER_DEFAULT_PRIO    60
  233. #define TK_INTERACTIVE_PRIO    80
  234. #define TK_MAX_PRIO        100
  235.  
  236. /*
  237.  * Relief values returned by Tk_GetRelief:
  238.  */
  239.  
  240. #define TK_RELIEF_RAISED    1
  241. #define TK_RELIEF_FLAT        2
  242. #define TK_RELIEF_SUNKEN    4
  243.  
  244. /*
  245.  * Special EnterNotify/LeaveNotify "mode" for use in events
  246.  * generated by tkShare.c.  Pick a high enough value that it's
  247.  * unlikely to conflict with existing values (like NotifyNormal)
  248.  * or any new values defined in the future.
  249.  */
  250.  
  251. #define TK_NOTIFY_SHARE        20
  252.  
  253. /*
  254.  * Enumerated type for describing a point by which to anchor something:
  255.  */
  256.  
  257. typedef enum {
  258.     TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
  259.     TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
  260.     TK_ANCHOR_CENTER
  261. } Tk_Anchor;
  262.  
  263. /*
  264.  * Enumerated type for describing a style of justification:
  265.  */
  266.  
  267. typedef enum {
  268.     TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT,
  269.     TK_JUSTIFY_CENTER, TK_JUSTIFY_FILL
  270. } Tk_Justify;
  271.  
  272. /*
  273.  *--------------------------------------------------------------
  274.  *
  275.  * Macros for querying Tk_Window structures.  See the
  276.  * manual entries for documentation.
  277.  *
  278.  *--------------------------------------------------------------
  279.  */
  280.  
  281. #define Tk_Display(tkwin)        (((Tk_FakeWin *) (tkwin))->display)
  282. #define Tk_ScreenNumber(tkwin)        (((Tk_FakeWin *) (tkwin))->screenNum)
  283. #define Tk_Screen(tkwin)        (ScreenOfDisplay(Tk_Display(tkwin), \
  284.     Tk_ScreenNumber(tkwin)))
  285. #define Tk_WindowId(tkwin)        (((Tk_FakeWin *) (tkwin))->window)
  286. #define Tk_PathName(tkwin)         (((Tk_FakeWin *) (tkwin))->pathName)
  287. #define Tk_Name(tkwin)            (((Tk_FakeWin *) (tkwin))->nameUid)
  288. #define Tk_Class(tkwin)         (((Tk_FakeWin *) (tkwin))->classUid)
  289. #define Tk_X(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.x)
  290. #define Tk_Y(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.y)
  291. #define Tk_Width(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.width)
  292. #define Tk_Height(tkwin) \
  293.     (((Tk_FakeWin *) (tkwin))->changes.height)
  294. #define Tk_Changes(tkwin)        (&((Tk_FakeWin *) (tkwin))->changes)
  295. #define Tk_Attributes(tkwin)        (&((Tk_FakeWin *) (tkwin))->atts)
  296. #define Tk_IsMapped(tkwin) \
  297.     (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
  298. #define Tk_ReqWidth(tkwin)        (((Tk_FakeWin *) (tkwin))->reqWidth)
  299. #define Tk_ReqHeight(tkwin)        (((Tk_FakeWin *) (tkwin))->reqHeight)
  300. #define Tk_InternalBorderWidth(tkwin) \
  301.     (((Tk_FakeWin *) (tkwin))->internalBorderWidth)
  302. #define Tk_Parent(tkwin)        (((Tk_FakeWin *) (tkwin))->parentPtr)
  303.  
  304. /*
  305.  * The structure below is needed by the macros above so that they can
  306.  * access the fields of a Tk_Window.  The fields not needed by the macros
  307.  * are declared as "dummyX".  The structure has its own type in order to
  308.  * prevent applications from accessing Tk_Window fields except using
  309.  * official macros.  WARNING!! The structure definition must be kept
  310.  * consistent with the TkWindow structure in tkInt.h.  If you change one,
  311.  * then change the other.  See the declaration in tkInt.h for
  312.  * documentation on what the fields are used for internally.
  313.  */
  314.  
  315. typedef struct Tk_FakeWin {
  316.     Display *display;
  317.     char *dummy1;
  318.     int screenNum;
  319.     Window window;
  320.     char *dummy2;
  321.     Tk_Window parentPtr;
  322.     char *dummy4;
  323.     char *dummy5;
  324.     char *pathName;
  325.     Tk_Uid nameUid;
  326.     Tk_Uid classUid;
  327.     XWindowChanges changes;
  328.     unsigned int dummy6;
  329.     XSetWindowAttributes atts;
  330.     unsigned long dummy7;
  331.     unsigned int flags;
  332.     char *dummy8;
  333.     char *dummy9;
  334.     ClientData dummy10;
  335.     int dummy12;
  336.     char *dummy13;
  337.     char *dummy14;
  338.     ClientData dummy15;
  339.     char *dummy16;
  340.     ClientData dummy17;
  341.     int reqWidth, reqHeight;
  342.     int internalBorderWidth;
  343.     char *dummyX;
  344. } Tk_FakeWin;
  345.  
  346. /*
  347.  * Flag values for TkWindow (and Tk_FakeWin) structures are:
  348.  *
  349.  * TK_MAPPED:            1 means window is currently mapped,
  350.  *                0 means unmapped.
  351.  * TK_RECURSIVE_DESTROY:    1 means a recursive destroy is in
  352.  *                progress, so some cleanup operations
  353.  *                can be omitted.
  354.  * TK_TOP_LEVEL:        1 means this is a top-level window (it
  355.  *                was or will be created as a child of
  356.  *                a root window).
  357.  * TK_ALREADY_DEAD:        1 means the window is in the process of
  358.  *                being destroyed already.
  359.  * TK_NEED_CONFIG_NOTIFY:    1 means that the window has been reconfigured
  360.  *                before it was made to exist.  At the time of
  361.  *                making it exist a ConfigureNotify event needs
  362.  *                to be generated.
  363.  * TK_GRAB_FLAG:        Used to manage grabs.  See tkGrab.c for
  364.  *                details.
  365.  */
  366.  
  367. #define TK_MAPPED        1
  368. #define TK_RECURSIVE_DESTROY    2
  369. #define TK_TOP_LEVEL        4
  370. #define TK_ALREADY_DEAD        8
  371. #define TK_NEED_CONFIG_NOTIFY    0x10
  372. #define TK_GRAB_FLAG        0x20
  373.  
  374. /*
  375.  *--------------------------------------------------------------
  376.  *
  377.  * Additional procedure types defined by Tk.
  378.  *
  379.  *--------------------------------------------------------------
  380.  */
  381.  
  382. typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData,
  383.     XErrorEvent *errEventPtr));
  384. typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData,
  385.     XEvent *eventPtr));
  386. typedef void (Tk_FileProc) _ANSI_ARGS_((ClientData clientData, int mask));
  387. typedef void (Tk_FocusProc) _ANSI_ARGS_((ClientData clientData, int gotFocus));
  388. typedef void (Tk_FreeProc) _ANSI_ARGS_((ClientData clientData));
  389. typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData,
  390.     XEvent *eventPtr));
  391. typedef void (Tk_GeometryProc) _ANSI_ARGS_((ClientData clientData,
  392.     Tk_Window tkwin));
  393. typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData,
  394.     Tcl_Interp *interp, char *portion));
  395. typedef void (Tk_IdleProc) _ANSI_ARGS_((ClientData clientData));
  396. typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData));
  397. typedef Bool (Tk_RestrictProc) _ANSI_ARGS_((Display *display, XEvent *eventPtr,
  398.     char *arg));
  399. typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData,
  400.     int offset, char *buffer, int maxBytes));
  401. typedef void (Tk_TimerProc) _ANSI_ARGS_((ClientData clientData));
  402.  
  403. /*
  404.  *--------------------------------------------------------------
  405.  *
  406.  * Exported procedures and variables.
  407.  *
  408.  *--------------------------------------------------------------
  409.  */
  410.  
  411. extern XColor *        Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border));
  412. extern void        Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
  413.                 char *value, int priority));
  414. extern void        Tk_BindEvent _ANSI_ARGS_((Tk_BindingTable bindingTable,
  415.                 XEvent *eventPtr, Tk_Window tkwin, int numObjects,
  416.                 ClientData *objectPtr));
  417. extern void        Tk_CancelIdleCall _ANSI_ARGS_((Tk_IdleProc *idleProc,
  418.                 ClientData clientData));
  419. extern void        Tk_ChangeWindowAttributes _ANSI_ARGS_((Tk_Window tkwin,
  420.                 unsigned long valueMask,
  421.                 XSetWindowAttributes *attsPtr));
  422. extern int        Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp *interp,
  423.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  424.                 char *widgRec, char *argvName, int flags));
  425. extern int        Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp *interp,
  426.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  427.                 int argc, char **argv, char *widgRec,
  428.                 int flags));
  429. extern Tk_Window    Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY,
  430.                 Tk_Window tkwin));
  431. extern unsigned long    Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp,
  432.                 Tk_BindingTable bindingTable, ClientData object,
  433.                 char *eventString, char *command, int append));
  434. extern Tk_BindingTable    Tk_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp));
  435. extern Tk_ErrorHandler    Tk_CreateErrorHandler _ANSI_ARGS_((Display *display,
  436.                 int error, int request, int minorCode,
  437.                 Tk_ErrorProc *errorProc, ClientData clientData));
  438. extern void        Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token,
  439.                 unsigned long mask, Tk_EventProc *proc,
  440.                 ClientData clientData));
  441. extern void        Tk_CreateFileHandler _ANSI_ARGS_((int fd, int mask,
  442.                 Tk_FileProc *proc, ClientData clientData));
  443. extern void        Tk_CreateFocusHandler _ANSI_ARGS_((Tk_Window tkwin,
  444.                 Tk_FocusProc *proc, ClientData clientData));
  445. extern void        Tk_CreateGenericHandler _ANSI_ARGS_((
  446.                 Tk_GenericProc *proc, ClientData clientData));
  447. extern Tk_Window    Tk_CreateMainWindow _ANSI_ARGS_((Tcl_Interp *interp,
  448.                 char *screenName, char *baseName));
  449. extern void        Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin,
  450.                 Atom target, Tk_SelectionProc *proc,
  451.                 ClientData clientData, Atom format));
  452. extern Tk_TimerToken    Tk_CreateTimerHandler _ANSI_ARGS_((int milliseconds,
  453.                 Tk_TimerProc *proc, ClientData clientData));
  454. extern Tk_Window    Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp *interp,
  455.                 Tk_Window parent, char *name, char *screenName));
  456. extern Tk_Window    Tk_CreateWindowFromPath _ANSI_ARGS_((
  457.                 Tcl_Interp *interp, Tk_Window tkwin,
  458.                 char *pathName, char *screenName));
  459. extern int        Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  460.                 Tk_Uid name, char *source, unsigned int width,
  461.                 unsigned int height));
  462. extern void        Tk_DefineCursor _ANSI_ARGS_((Tk_Window window,
  463.                 Cursor cursor));
  464. extern void        Tk_DeleteAllBindings _ANSI_ARGS_((
  465.                 Tk_BindingTable bindingTable, ClientData object));
  466. extern int        Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp *interp,
  467.                 Tk_BindingTable bindingTable, ClientData object,
  468.                 char *eventString));
  469. extern void        Tk_DeleteBindingTable _ANSI_ARGS_((
  470.                 Tk_BindingTable bindingTable));
  471. extern void        Tk_DeleteErrorHandler _ANSI_ARGS_((
  472.                 Tk_ErrorHandler handler));
  473. extern void        Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token,
  474.                 unsigned long mask, Tk_EventProc *proc,
  475.                 ClientData clientData));
  476. extern void        Tk_DeleteFileHandler _ANSI_ARGS_((int fd));
  477. extern void        Tk_DeleteGenericHandler _ANSI_ARGS_((
  478.                 Tk_GenericProc *proc, ClientData clientData));
  479. extern void        Tk_DeleteTimerHandler _ANSI_ARGS_((
  480.                 Tk_TimerToken token));
  481. extern void        Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin));
  482. extern char *        Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin));
  483. extern int        Tk_DoOneEvent _ANSI_ARGS_((int flags));
  484. extern void        Tk_DoWhenIdle _ANSI_ARGS_((Tk_IdleProc *proc,
  485.                 ClientData clientData));
  486. extern void        Tk_Draw3DPolygon _ANSI_ARGS_((Display *display,
  487.                 Drawable drawable, Tk_3DBorder border,
  488.                 XPoint *pointPtr, int numPoints, int borderWidth,
  489.                 int leftRelief));
  490. extern void        Tk_Draw3DRectangle _ANSI_ARGS_((Display *display,
  491.                 Drawable drawable, Tk_3DBorder border, int x,
  492.                 int y, int width, int height, int borderWidth,
  493.                 int relief));
  494. extern void        Tk_EventuallyFree _ANSI_ARGS_((ClientData clientData,
  495.                 Tk_FreeProc *freeProc));
  496. extern void        Tk_Fill3DPolygon _ANSI_ARGS_((Display *display,
  497.                 Drawable drawable, Tk_3DBorder border,
  498.                 XPoint *pointPtr, int numPoints, int borderWidth,
  499.                 int leftRelief));
  500. extern void        Tk_Fill3DRectangle _ANSI_ARGS_((Display *display,
  501.                 Drawable drawable, Tk_3DBorder border, int x,
  502.                 int y, int width, int height, int borderWidth,
  503.                 int relief));
  504. extern void        Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border));
  505. extern void        Tk_FreeBitmap _ANSI_ARGS_((Pixmap bitmap));
  506. extern void        Tk_FreeColor _ANSI_ARGS_((XColor *colorPtr));
  507. extern void        Tk_FreeCursor _ANSI_ARGS_((Cursor cursor));
  508. extern void        Tk_FreeFontStruct _ANSI_ARGS_((
  509.                 XFontStruct *fontStructPtr));
  510. extern void        Tk_FreeGC _ANSI_ARGS_((GC gc));
  511. extern void        Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin,
  512.                 int reqWidth,  int reqHeight));
  513. extern Tk_3DBorder    Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp *interp,
  514.                 Tk_Window tkwin, Colormap colormap,
  515.                 Tk_Uid colorName));
  516. extern void        Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp *interp,
  517.                 Tk_BindingTable bindingTable, ClientData object));
  518. extern int        Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp *interp,
  519.                 char *string, Tk_Anchor *anchorPtr));
  520. extern char *        Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin,
  521.                 Atom atom));
  522. extern char *        Tk_GetBinding _ANSI_ARGS_((Tcl_Interp *interp,
  523.                 Tk_BindingTable bindingTable, ClientData object,
  524.                 char *eventString));
  525. extern Pixmap        Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  526.                 Tk_Window tkwin, Tk_Uid string));
  527. extern Pixmap        Tk_GetBitmapFromData _ANSI_ARGS_((Tcl_Interp *interp,
  528.                 Tk_Window tkwin, char *source,
  529.                 unsigned int width, unsigned int height));
  530. extern int        Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp *interp,
  531.                 char *string, int *capPtr));
  532. extern XColor *        Tk_GetColor _ANSI_ARGS_((Tcl_Interp *interp,
  533.                 Tk_Window tkwin, Colormap colormap, Tk_Uid name));
  534. extern XColor *        Tk_GetColorByValue _ANSI_ARGS_((Tcl_Interp *interp,
  535.                 Tk_Window tkwin, Colormap colormap,
  536.                 XColor *colorPtr));
  537. extern Cursor        Tk_GetCursor _ANSI_ARGS_((Tcl_Interp *interp,
  538.                 Tk_Window tkwin, Tk_Uid string));
  539. extern Cursor        Tk_GetCursorFromData _ANSI_ARGS_((Tcl_Interp *interp,
  540.                 Tk_Window tkwin, char *source, char *mask,
  541.                 unsigned int width, unsigned int height,
  542.                 int xHot, int yHot, Tk_Uid fg, Tk_Uid bg));
  543. extern XFontStruct *    Tk_GetFontStruct _ANSI_ARGS_((Tcl_Interp *interp,
  544.                 Tk_Window tkwin, Tk_Uid name));
  545. extern GC        Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin,
  546.                 unsigned long valueMask, XGCValues *valuePtr));
  547. extern int        Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp *interp,
  548.                 char *string, int *joinPtr));
  549. extern int        Tk_GetJustify _ANSI_ARGS_((Tcl_Interp *interp,
  550.                 char *string, Tk_Justify *justifyPtr));
  551. extern Tk_Uid        Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
  552.                 char *className));
  553. extern int        Tk_GetPixels _ANSI_ARGS_((Tcl_Interp *interp,
  554.                 Tk_Window tkwin, char *string, int *intPtr));
  555. extern int        Tk_GetRelief _ANSI_ARGS_((Tcl_Interp *interp,
  556.                 char *name, int *reliefPtr));
  557. extern void        Tk_GetRootCoords _ANSI_ARGS_ ((Tk_Window tkwin,
  558.                 int *xPtr, int *yPtr));
  559. extern int        Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp *interp,
  560.                 Tk_Window tkwin, char *string, double *doublePtr));
  561. extern int        Tk_GetSelection _ANSI_ARGS_((Tcl_Interp *interp,
  562.                 Tk_Window tkwin, Atom target, Tk_GetSelProc *proc,
  563.                 ClientData clientData));
  564. extern Tk_Uid        Tk_GetUid _ANSI_ARGS_((char *string));
  565. extern int        Tk_Grab _ANSI_ARGS_((Tcl_Interp *interp,
  566.                 Tk_Window tkwin, int grabGlobal));
  567. extern void        Tk_HandleEvent _ANSI_ARGS_((XEvent *eventPtr));
  568. extern Atom        Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin,
  569.                 char *name));
  570. extern void        Tk_MainLoop _ANSI_ARGS_((void));
  571. extern void        Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin));
  572. extern void        Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin,
  573.                 Tk_GeometryProc *proc, ClientData clientData));
  574. extern void        Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin));
  575. extern void        Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
  576.                 int x, int y, unsigned int width,
  577.                 unsigned int height));
  578. extern void        Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x,
  579.                 int y));
  580. extern char *        Tk_NameOf3DBorder _ANSI_ARGS_((Tk_3DBorder border));
  581. extern char *        Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor));
  582. extern char *        Tk_NameOfBitmap _ANSI_ARGS_((Pixmap bitmap));
  583. extern char *        Tk_NameOfCapStyle _ANSI_ARGS_((int cap));
  584. extern char *        Tk_NameOfColor _ANSI_ARGS_((XColor *colorPtr));
  585. extern char *        Tk_NameOfCursor _ANSI_ARGS_((Cursor cursor));
  586. extern char *        Tk_NameOfFontStruct _ANSI_ARGS_((
  587.                 XFontStruct *fontStructPtr));
  588. extern char *        Tk_NameOfJoinStyle _ANSI_ARGS_((int join));
  589. extern char *        Tk_NameOfJustify _ANSI_ARGS_((Tk_Justify justify));
  590. extern char *        Tk_NameOfRelief _ANSI_ARGS_((int relief));
  591. extern Tk_Window    Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp *interp,
  592.                 char *pathName, Tk_Window tkwin));
  593. extern void        Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin,
  594.                 Tk_LostSelProc *proc, ClientData clientData));
  595. extern int        Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp *interp,
  596.                 Tk_Window tkwin, int *argcPtr, char **argv,
  597.                 Tk_ArgvInfo *argTable, int flags));
  598. extern void        Tk_Preserve _ANSI_ARGS_((ClientData clientData));
  599. extern int        Tk_RegisterInterp _ANSI_ARGS_((Tcl_Interp *interp,
  600.                 char *name, Tk_Window tkwin));
  601. extern void        Tk_Release _ANSI_ARGS_((ClientData clientData));
  602. extern void        Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
  603.                 unsigned int width, unsigned int height));
  604. extern Tk_RestrictProc *Tk_RestrictEvents _ANSI_ARGS_((Tk_RestrictProc *proc,
  605.                 char *arg, char **prevArgPtr));
  606. extern void        Tk_SetBackgroundFromBorder _ANSI_ARGS_((
  607.                 Tk_Window tkwin, Tk_3DBorder border));
  608. extern void        Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin,
  609.                 char *className));
  610. extern void        Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin,
  611.                 int reqWidth, int reqHeight, int gridWidth,
  612.                 int gridHeight));
  613. extern void        Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin,
  614.                 int width));
  615. extern void        Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin,
  616.                 unsigned long pixel));
  617. extern void        Tk_SetWindowBackgroundPixmap _ANSI_ARGS_((
  618.                 Tk_Window tkwin, Pixmap pixmap));
  619. extern void        Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin,
  620.                 unsigned long pixel));
  621. extern void        Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin,
  622.                 int width));
  623. extern void        Tk_SetWindowBorderPixmap _ANSI_ARGS_((Tk_Window tkwin,
  624.                 Pixmap pixmap));
  625. extern void        Tk_ShareEvents _ANSI_ARGS_((Tk_Window tkwin,
  626.                 Tk_Uid groupId));
  627. extern void        Tk_SizeOfBitmap _ANSI_ARGS_((Pixmap bitmap,
  628.                 unsigned int *widthPtr, unsigned int *heightPtr));
  629. extern void        Tk_Sleep _ANSI_ARGS_((int ms));
  630. extern void        Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window));
  631. extern void        Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin));
  632. extern void        Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin));
  633. extern void        Tk_UnshareEvents _ANSI_ARGS_((Tk_Window tkwin,
  634.                 Tk_Uid groupId));
  635.  
  636.  
  637. extern int        tk_NumMainWindows;
  638.  
  639. /*
  640.  * Tcl commands exported by Tk:
  641.  */
  642.  
  643. extern int        Tk_AfterCmd _ANSI_ARGS_((ClientData clientData,
  644.                 Tcl_Interp *interp, int argc, char **argv));
  645. extern int        Tk_ApplicationCmd _ANSI_ARGS_((ClientData clientData,
  646.                 Tcl_Interp *interp, int argc, char **argv));
  647. extern int        Tk_BindCmd _ANSI_ARGS_((ClientData clientData,
  648.                 Tcl_Interp *interp, int argc, char **argv));
  649. extern int        Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData,
  650.                 Tcl_Interp *interp, int argc, char **argv));
  651. extern int        Tk_CanvasCmd _ANSI_ARGS_((ClientData clientData,
  652.                 Tcl_Interp *interp, int argc, char **argv));
  653. extern int        Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData,
  654.                 Tcl_Interp *interp, int argc, char **argv));
  655. extern int        Tk_EntryCmd _ANSI_ARGS_((ClientData clientData,
  656.                 Tcl_Interp *interp, int argc, char **argv));
  657. extern int        Tk_FrameCmd _ANSI_ARGS_((ClientData clientData,
  658.                 Tcl_Interp *interp, int argc, char **argv));
  659. extern int        Tk_FocusCmd _ANSI_ARGS_((ClientData clientData,
  660.                 Tcl_Interp *interp, int argc, char **argv));
  661. extern int        Tk_GrabCmd _ANSI_ARGS_((ClientData clientData,
  662.                 Tcl_Interp *interp, int argc, char **argv));
  663. extern int        Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData,
  664.                 Tcl_Interp *interp, int argc, char **argv));
  665. extern int        Tk_MenuCmd _ANSI_ARGS_((ClientData clientData,
  666.                 Tcl_Interp *interp, int argc, char **argv));
  667. extern int        Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData,
  668.                 Tcl_Interp *interp, int argc, char **argv));
  669. extern int        Tk_MessageCmd _ANSI_ARGS_((ClientData clientData,
  670.                 Tcl_Interp *interp, int argc, char **argv));
  671. extern int        Tk_OptionCmd _ANSI_ARGS_((ClientData clientData,
  672.                 Tcl_Interp *interp, int argc, char **argv));
  673. extern int        Tk_PackCmd _ANSI_ARGS_((ClientData clientData,
  674.                 Tcl_Interp *interp, int argc, char **argv));
  675. extern int        Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData,
  676.                 Tcl_Interp *interp, int argc, char **argv));
  677. extern int        Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData,
  678.                 Tcl_Interp *interp, int argc, char **argv));
  679. extern int        Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData,
  680.                 Tcl_Interp *interp, int argc, char **argv));
  681. extern int        Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData,
  682.                 Tcl_Interp *interp, int argc, char **argv));
  683. extern int        Tk_SendCmd _ANSI_ARGS_((ClientData clientData,
  684.                 Tcl_Interp *interp, int argc, char **argv));
  685. extern int        Tk_TextCmd _ANSI_ARGS_((ClientData clientData,
  686.                 Tcl_Interp *interp, int argc, char **argv));
  687. extern int        Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData,
  688.                 Tcl_Interp *interp, int argc, char **argv));
  689. extern int        Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData,
  690.                 Tcl_Interp *interp, int argc, char **argv));
  691. extern int        Tk_WinfoCmd _ANSI_ARGS_((ClientData clientData,
  692.                 Tcl_Interp *interp, int argc, char **argv));
  693. extern int        Tk_WmCmd _ANSI_ARGS_((ClientData clientData,
  694.                 Tcl_Interp *interp, int argc, char **argv));
  695.  
  696. #endif /* _TK */
  697.